<?php
declare(strict_types=1);

namespace app\common\enum;

class ResponseCode
{
    // 成功
    const SUCCESS = 200;                    // 服务器成功返回请求数据
    const CREATED = 201;                    // 新建或修改数据成功
    const ACCEPTED = 202;                   // 一个请求已经进入后台排队(异步任务)
    const NO_CONTENT = 204;                 // 删除数据成功
    
    // 客户端错误
    const BAD_REQUEST = 400;                // 发出信息有误
    const UNAUTHORIZED = 401;               // 用户没有权限(令牌失效、用户名、密码错误、登录过期)
    const TOKEN_EXPIRED = 402;              // 令牌过期
    const FORBIDDEN = 403;                  // 用户得到授权，但是访问是被禁止的
    const NOT_FOUND = 404;                  // 访问资源不存在
    const NOT_ACCEPTABLE = 406;             // 请求格式不可得
    const GONE = 410;                       // 请求资源被永久删除，且不会被看到
    
    // 服务器错误
    const INTERNAL_ERROR = 500;             // 服务器发生错误
    const BAD_GATEWAY = 502;                // 网关错误
    const SERVICE_UNAVAILABLE = 503;        // 服务不可用，服务器暂时过载或维护
    const GATEWAY_TIMEOUT = 504;            // 网关超时
    
    // 响应信息
    public static $messages = [
        self::SUCCESS => '操作成功',
        self::CREATED => '新建或修改数据成功',
        self::ACCEPTED => '请求进入后台排队',
        self::NO_CONTENT => '删除成功',
        
        self::BAD_REQUEST => '请求参数错误',
        self::UNAUTHORIZED => '请先登录',
        self::TOKEN_EXPIRED => '登录已过期，请重新登录',
        self::FORBIDDEN => '无权限访问',
        self::NOT_FOUND => '资源不存在',
        self::NOT_ACCEPTABLE => '请求格式错误',
        self::GONE => '资源已被删除',
        
        self::INTERNAL_ERROR => '服务器错误',
        self::BAD_GATEWAY => '网关错误',
        self::SERVICE_UNAVAILABLE => '服务不可用',
        self::GATEWAY_TIMEOUT => '网关超时'
    ];
} 